<#--
分页组件
@site http://itsub.cn
@author Erik
-->
<#-- 使用方法 -->
<#--
paginator 总页数, 当前页, 页面大小默认15, 分页样式（可选：orange、blue）, 显示最多分页个数
<#import "inc/paginator.ftl" as page >
<@page.paginator 50 ,9 ,20,"orange";num,text>
<a href="?sort=${sort}&page=${num}" target="_self">${text}</a>
</@page.paginator>
-->

<#macro paginator _totalPageNum _currentPageNo _pageSize=15 _styleClassName="orange" _maxShowNums=10  >
<#-- 本段默认起始页 -->
<#local _pageStartNo = 1/>
<#-- 本段默认结束页 -->
<#local _pageEndNo = _maxShowNums />
<#-- 分页的第一页 -->
<#local _firstPageNo = 1 />
<#-- 分页的最后一页 -->
<#local _lastPageNo = _totalPageNum>
<#-- 前一页号码 -->
<#local _prePageNo = _currentPageNo-1 />
<#-- 后一页号码 -->
<#local _nextPageNo = _currentPageNo+1 />

<#if _currentPageNo == _pageStartNo>
<#local _prePageNo = _pageStartNo />
</#if>

<#if _currentPageNo == _lastPageNo>
<#local _nextPageNo = _lastPageNo />
</#if>

<#if _currentPageNo gt _maxShowNums>
<#local _thisPageSegment = ((_currentPageNo-1) / _maxShowNums)?int + 1/>
<#assign _thisPageStartNo = _pageStartNo + (_thisPageSegment-1) * _maxShowNums/>
<#assign _thisPageEndNo = _pageEndNo + (_thisPageSegment-1) * _maxShowNums/>
<#if _thisPageEndNo gt _totalPageNum>
<#assign _thisPageEndNo = _totalPageNum>
</#if>
<#else>
<#assign _thisPageStartNo = _pageStartNo />
<#assign _thisPageEndNo = _pageEndNo />
</#if>

<#-- 构造当前分页栏上面的分页按钮 -->
<#local _pages=[] />
<#if _totalPageNum != 0>
<#list _thisPageStartNo .. _thisPageEndNo as _index>
<#if _currentPageNo == _index >
<#local _pages = _pages + [{"pageNum" : _index ,"current" : true}] />
<#else>
<#local _pages = _pages + [{"pageNum" : _index ,"current" : false}] />
</#if>
</#list>
</#if>

<#-- 构造分页栏HTML代码 -->
<#local _htmlNoLinkLine>
<#nested _firstPageNo,'首页'>
<#if _currentPageNo != _pageStartNo>
<#nested _prePageNo,'上一页'>
</#if>

<#list _pages as page>
<#if page.current?default(false)>
<span class="current" >${page.pageNum}</span>
<#else>
<#nested page.pageNum,page.pageNum >
</#if>
</#list>

<#if _currentPageNo != _lastPageNo>
<#nested _nextPageNo,'下一页'>
</#if>
<#nested _lastPageNo,'尾页'>
<span>共${_totalPageNum?default(0)}页</span>
</#local>

<!-- 将分页HTML代码放置到页面 -->
<div class="lpage ${_styleClassName}">
    ${_htmlNoLinkLine}
</div>

<!-- 分页插件CSS -->
<style type="text/css" mce_bogus="1">
    .lpage{
        font-size: 12px;
        font-family: verdana, arial, helvetica, sans-serif;
        padding: 3px;
        margin: 3px;
        text-align: center;
        color:#999999;
    }
    .lpage a {
        border: #E1E2E3 1px solid;
        padding: 7px 10px;
        margin: 0px;
        color: #808080;
        text-decoration: none;
    }
    .lpage a:hover {
        border: #3388FF 1px solid;
        background: #F2F8FF;
    }
    .lpage span.current {
        border: transparent 1px solid;
        font-weight: bold;
        margin: 0px;
        padding: 7px 10px;
        color: #333333;
    }
    <#-- CSS orange style pagination -->
    .lpage.orange {}
    .lpage.orange a {
        border: #DFDFDF 1px solid;
        color: #3D3D3D;
    }
    .lpage.orange a:hover {
        border: #FE4500 1px solid;
        background: transparent;
        color:#FE4500;
    }
    .lpage.orange a:active {
        color: #FE4500;
    }
    .lpage.orange span.current {
        border: #FF4400 1px solid;
        background: #FF4400;
        color: #FFFFFF;
    }
    <#-- CSS blue style pagination -->
    .lpage.blue {}
    .lpage.blue a:hover {
        border: #389CFF 1px solid;
        background: transparent;
        color:#389CFF;
    }
    .lpage.blue a:active {
        color: #389CFF;
    }
    .lpage.blue span.current {
        border: #389CFF 1px solid;
        background: #389CFF;
        color: #FFFFFF;
    }
</style>
</#macro>
